// js解构

// 解构赋值语法将对象属性解包到变量中
// 解包数组和任何其他可迭代对象（set map）


let person = {
	name: "zhangsan",
	age: 1

};

// 原始写法
// let name = person.name;
// let age = person.age;
// console.log(name, age);

// 解构语法
// 与属性的顺序无关
// let {name , age} = person;
// let {age , name} = person;
// console.log(name, age);

// 设置默认值
// let {name, age, city  = "tianjin"} = person;
// console.log(name, age, city);


// 为对象的属性设置别名
let {name: name1} = person;
console.log(name1);

// 字符串解构
// let str = "abc";
// let [a1, , a3, a4] = str;
// console.log(a1, a2, a3, a4);

// 数组解构
const arr = [1, 2, 3];
// let [a1, a2] = arr;
// console.log(a1, a2);

// 通过逗号可以跳过结构的值
// let[a1,,a2] = arr;
// console.log(a1, a2);


// 指定解构数组中的某个值
// let {[1]: a1} = arr;
// console.log(a1);

let [a1, ...rest] = arr;
console.log(a1, rest);
console.log(rest[0]);
















